///**
// * Copyright (c) Facebook, Inc. and its affiliates.
// *
// * <p>This source code is licensed under the MIT license found in the LICENSE file in the root
// * directory of this source tree.
// */
//package com.kxf.androidtestdemo.rn;
//
//import android.content.Context;
//
//import com.facebook.flipper.android.AndroidFlipperClient;
//import com.facebook.flipper.android.utils.FlipperUtils;
//import com.facebook.flipper.core.FlipperClient;
//import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
//import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin;
//import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
//import com.facebook.flipper.plugins.inspector.DescriptorMapping;
//import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
//import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
//import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
//import com.facebook.flipper.plugins.react.ReactFlipperPlugin;
//import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
//import com.facebook.react.ReactInstanceManager;
//import com.facebook.react.bridge.ReactContext;
//import com.facebook.react.modules.network.NetworkingModule;
//
//import okhttp3.OkHttpClient;
//
//public class ReactNativeFlipper {
//  public static void initializeFlipper(Context context, final ReactInstanceManager reactInstanceManager) {
//    if (FlipperUtils.shouldEnableFlipper(context)) {
//      final FlipperClient client = AndroidFlipperClient.getInstance(context);
//
//      client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
//      client.addPlugin(new ReactFlipperPlugin());
//      client.addPlugin(new DatabasesFlipperPlugin(context));
//      client.addPlugin(new SharedPreferencesFlipperPlugin(context));
//      client.addPlugin(CrashReporterPlugin.getInstance());
//
//      final NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
//      NetworkingModule.setCustomClientBuilder(
//          new NetworkingModule.CustomClientBuilder() {
//            @Override
//            public void apply(OkHttpClient.Builder builder) {
//              builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
//            }
//          });
//      client.addPlugin(networkFlipperPlugin);
//      client.start();
//
//      // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
//      // Hence we run if after all native modules have been initialized
//      ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
//      if (reactContext == null) {
//        reactInstanceManager.addReactInstanceEventListener(
//            new ReactInstanceManager.ReactInstanceEventListener() {
//              @Override
//              public void onReactContextInitialized(ReactContext reactContext) {
//                reactInstanceManager.removeReactInstanceEventListener(this);
//                reactContext.runOnNativeModulesQueueThread(
//                    new Runnable() {
//                      @Override
//                      public void run() {
//                        client.addPlugin(new FrescoFlipperPlugin());
//                      }
//                    });
//              }
//            });
//      } else {
//        client.addPlugin(new FrescoFlipperPlugin());
//      }
//    }
//  }
//}
